#include <stdio.h>

int bin_search (int arr [10] , int left , int right , int key) // arr 是查找的数组 , left 数组的左下标 , right 数组的右下标 , key 要查找的数字
{

    int mid = 0 ;

    while (left <= right) // 设立循环函数,当左下标越过右下标、或者左下标等于右下标的时候,停止循环
    {

        mid = (left + right) / 2 ; // 设立中间下标,放在循环中使得中间下标是可以变的

        if (key < arr [mid]) // 设立判断,判断中间下标的元素内容是否等于要寻找的值。
        {

            right = mid - 1 ; // 当大于的时候,中间下标的右边部分排除

        }

        else if (key > arr [mid])
        {

            left = mid + 1 ; // 当小于的时候,中间下标的左边部分排除

        }

        else
        {

            return mid ; // 查找到就返回下标值

        }

    }

    return -1 ; // 查找不到返回-1
    
}

int main ()
{

    int array [] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ;

    int left = 0 ; 

    int right = 9 ;

    int key = 11 ;

    int index = bin_search (array , left , right , key) ;

    if (index == -1)
    {

        printf("no in the array.") ;

    }
    
    else
    {

        printf("%d" , index) ;

    }

    return 0 ;

}